var skype_injection_path='chrome://skype_ff_toolbar_win/content/';
var skype_tool=null;

/*window.addEventListener("click",skype_click_handler,true);
function skype_click_handler(event)
{
	if (skype_tool)
	    skype_tool.closemenu();
	//HideSkypeMenuFull();
} */

//CALL BUTTON
var ActiveCallButtonPart=0;
function SetCallButtonPart(obj)
{
	if (obj.getAttribute('id') == '__skype_highlight_id_left')
    {
	    ActiveCallButtonPart=0;
	}
    else if (obj.getAttribute('id') == '__skype_highlight_id_right')
    {
	    ActiveCallButtonPart=1;
	}
}

function SetCallButton(obj, hl, isInternational)
{
	var cb_part_l=null;
    var cb_part_ml=null;
    var cb_part_mr=null;
    var cb_part_r=null;
    if (obj.getAttribute('rtl') == 'false')
    {
    	cb_part_l=obj.firstChild.firstChild;
    	cb_part_ml=obj.firstChild.lastChild;
    	cb_part_mr=obj.lastChild.firstChild;
    	cb_part_r=obj.lastChild.lastChild;

        cb_flag=obj.firstChild.lastChild.firstChild;
        if (cb_flag && cb_flag.isSameNode(obj.firstChild.firstChild.firstChild) == true)
			cb_flag=null;
    }
    else
    {
    	cb_part_l=obj.lastChild.lastChild;
    	cb_part_ml=obj.lastChild.firstChild;
    	cb_part_mr=obj.firstChild.lastChild;
    	cb_part_r=obj.firstChild.firstChild;

        cb_flag=obj.lastChild.firstChild.lastChild;
		if (cb_flag && cb_flag.isSameNode(obj.lastChild.lastChild.lastChild) == true)
			cb_flag=null;
    }

	if (hl == 1)
    {
        cb_part_l.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_mouseover_l.gif')";
        if (cb_part_l.isSameNode(cb_part_ml) != true)
			cb_part_ml.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_mouseover_m.gif')";
        cb_part_mr.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_mouseover_m.gif')";


	    if (isInternational=="0")
        {
            if (ActiveCallButtonPart==0)    //left
            {
                cb_part_r.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_mouseonflag_r.gif')";
                //shadow
                if (cb_flag)
                {
	                cb_flag.style.top='1px';
        	        cb_flag.style.left='1px';     /*top right bottom left*/
    	            cb_flag.style.padding='1px 0px 0px 1px';//'2px 0px 0px 0px';
                }
            }
            else                            //right
            {
                cb_part_r.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_mouseover_r.gif')";
                //flag
                if (cb_flag)
                {
            	    cb_flag.style.top='0px';
        	        cb_flag.style.left='0px';
    	            cb_flag.style.padding='0px 1px 1px 0px';//'0px 1px 1px 0px';
	                cb_flag.style.margin='0px 0px 2px 0px;';
                }
            }
        }
        else
        {
            cb_part_r.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_mouseover_r.gif')";
           	//flag
           	if (cb_flag)
           	{
	        	cb_flag.style.top='0px';
    	       	cb_flag.style.left='0px';
        	   	cb_flag.style.padding='0px 1px 1px 0px';
				cb_flag.style.margin='0px 0px 2px 0px;';
           	}
        }
    }
    else
    {
        cb_part_l.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_normal_l.gif')";
        if (cb_part_l.isSameNode(cb_part_ml) != true)
	        cb_part_ml.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_normal_m.gif')";
        cb_part_mr.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_normal_m.gif')";
        cb_part_r.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_normal_r.gif')";

		//flag
        if (cb_flag)
        {
	        cb_flag.style.top='0px';
	        cb_flag.left='0px';
	        cb_flag.style.padding='0px 1px 1px 0px';
	        cb_flag.style.margin='0px 0px 2px 0px;';
        }
    }
}
var cb_l='';
var cb_m='';
var cb_r='';

function SetCallButtonPressed(obj, pr, isInternational)
{
	var cb_part_l=null;
    var cb_part_ml=null;
    var cb_part_mr=null;
    var cb_part_r=null;
    if (obj.getAttribute('rtl') == 'false')
    {
    	cb_part_l=obj.firstChild.firstChild;
    	cb_part_ml=obj.firstChild.lastChild;
    	cb_part_mr=obj.lastChild.firstChild;
    	cb_part_r=obj.lastChild.lastChild;

        cb_flag=obj.firstChild.lastChild.firstChild;
        if (cb_flag && cb_flag.isSameNode(obj.firstChild.firstChild.firstChild) == true)
			cb_flag=null;
    }
    else
    {
    	cb_part_l=obj.lastChild.lastChild;
    	cb_part_ml=obj.lastChild.firstChild;
    	cb_part_mr=obj.firstChild.lastChild;
    	cb_part_r=obj.firstChild.firstChild;

        cb_flag=obj.lastChild.firstChild.lastChild;
        if (cb_flag && cb_flag.isSameNode(obj.lastChild.lastChild.lastChild) == true)
			cb_flag=null;
    }
	if (pr == 1)
    {
    	cb_l=cb_part_l.style.backgroundImage;//getAttribute('src');
		cb_m=cb_part_mr.style.backgroundImage;
		cb_r=cb_part_r.style.backgroundImage;//getAttribute('src');

        if (isInternational=="0")
        {
	        if (ActiveCallButtonPart==0)    //left
	        {
	            //obj.firstChild.firstChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_l.gif');
                cb_part_l.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_l.gif')";
                if (cb_part_l.isSameNode(cb_part_ml) != true)
		            cb_part_ml.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
	        }
	        else                            //right
	        {
	            //obj.firstChild.firstChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_l.gif');
                cb_part_l.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_l.gif')";
                if (cb_part_l.isSameNode(cb_part_ml) != true)
		            cb_part_ml.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
	            cb_part_mr.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
	            //obj.lastChild.lastChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_r.gif');
                cb_part_r.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_r.gif')";
	        }
        }
        else
        {
   	            //obj.firstChild.firstChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_l.gif');
                cb_part_l.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_l.gif')";
                if (cb_part_l.isSameNode(cb_part_ml) != true)
		            cb_part_ml.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
	            cb_part_mr.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_m.gif')";
	            //obj.lastChild.lastChild.setAttribute('src', 'chrome://skype_ff_toolbar_win/content/cb_down_r.gif');
                cb_part_r.style.backgroundImage="url('chrome://skype_ff_toolbar_win/content/cb_down_r.gif')";
        }
    }
    else
    {
	    //obj.firstChild.firstChild.setAttribute('src', cb_l);
        cb_part_l.style.backgroundImage=cb_l;
        if (cb_part_l.isSameNode(cb_part_ml) != true)
	        cb_part_ml.style.backgroundImage=cb_m;
        cb_part_mr.style.backgroundImage=cb_m;
        //obj.lastChild.lastChild.setAttribute('src', cb_r);
        cb_part_r.style.backgroundImage=cb_r;
    }
}

//COMMANDS
function SkypeToolBarInit(tb)
{
	skype_tool=tb;
}

function doRunCMD(event, link, id, name)
{
  if (skype_tool)
  {
  	if (link == 'chdial')
    {
        var obj=event.originalTarget;
	    if (!obj)
    		obj=event;
	  	/*var brd=getBounds(obj);
        var docelem = document.documentElement;
	    if ((docelem.scrollTop == 0 && document.body.scrollTop != 0) || (docelem.scrollLeft == 0 && document.body.scrollLeft != 0))
	        docelem=document.body;

	    scrollY=docelem.scrollTop;
	    scrollX=docelem.scrollLeft;

	    var my=brd.top+16, mx=brd.left;/*brd.height*/

	     //var oDoc = obj.ownerDocument;

        /*var obj2 = document.getBoxObjectFor(element);

        var html_box = new XPCNativeWrapper(obj2).wrappedJSObject;
        if (!html_box)
          html_box = obj2;

        var screenX = html_box.screenX;
        var screenY = html_box.screenY;
	        */

        flagColor='rgb(184, 203, 255)';
        skype_tool.chprefix(id, document, obj, screenY);
    }
    else if (link == 'copy')
		skype_tool.copy_num(id, document);
    else if (link == 'sms')
		skype_tool.sms(id);
    else if (link == 'add')
		skype_tool.add(id, name);
    else
  		skype_tool.call(id);
  }
}

function runCMD(link)
{
  HideSkypeFull();
  doRunCMD(null, link, skype_curid, skype_cur_name);
}

//FLAG TOOLTIP
function HideSkypeFull()
{
//   skype_active=false;
   document.getElementById('skype_dc').style.visibility="hidden";
}

function ShowSkype(event, title)
{
//  skype_active=true;
  DoShowSkype(event.pageX, event.pageY+20, title);
}

function DoShowSkype(cX, cY, title)
{
  var menu=document.getElementById('skype_dc');
  menu.firstChild.nodeValue=title;
  menu.style.visibility="visible";

  menu.style.left=cX+'px';
  menu.style.top=cY+'px';

}
var flagColor='rgb(184, 203, 255)';
function doSkypeFlag(obj,brd)
{
	flagColor=brd;
}

//MENU
var skype_curid=0,skype_active=false,skype_showseed=0,skype_ctm=0,skype_cur_name='';
var curbutton=null;
function CheckCallButton(obj)
{
	var res=false;
	if (curbutton && curbutton.isSameNode(obj)==true)
    	res=true;

    curbutton=obj;
    return res;
}

function HideSkypeMenu()
{                       //skype_tool.sd('HideSkypeMenu skype_active='+skype_active);
	if(!skype_active)
		HideSkypeMenuFull();
  	else
    	setTimeout("HideSkypeMenu()",1000);
}

function HideSkypeMenu2(event)
{
  	skype_showseed=0;
  	if(!skype_active)
    	HideSkypeMenuFull();
  	else
    {
    	skype_active=false;
		setTimeout("HideSkypeMenu()",1000);
  	}
}

function HideSkypeMenuFull()
{                                 //skype_tool.sd('HideSkypeMenuFull skype_active='+skype_active);
/*   skype_active=false;
   document.getElementById('skype_menu').style.visibility="hidden";*/
}

function CheckSkype()
{
   skype_active=true;
}

function ShowSkypeMenu(event, call_msg, id, callto, isMobile, name, x, y)
{
try{
/*  	skype_active=true;       						//skype_tool.sd('ShowSkypeMenu skype_curid='+skype_curid+'   callto='+callto+'  id='+id);
  	if(document.getElementById('skype_menu').style.visibility!="hidden" && skype_curid==callto)//id
    	return;
  	skype_showseed=Math.random();
  	clearTimeout(skype_ctm);
    var obj=event.originalTarget;
    if (!obj)
    	obj=event;
//  	var brd=getBounds(obj);
  	//var pcx=brd.left, pcy=brd.top+16;/*brd.height;* /   //alert(pcx+'--'+pcy);

    scrolls=getDivScroll(obj);

  	var pcx = x+scrolls.left, pcy = y+scrolls.top;

  	skype_ctm=setTimeout('DoShowSkypeMenu(\''+call_msg+'\','+skype_showseed+',"'+callto+'",'+pcx+','+pcy+','+isMobile+',"'+name+'")',0);*/
}catch(e){ }
}

function DoShowSkypeMenu(call_msg, seed, callto, pcx, pcy, isMobile, name)
{
try{														//skype_tool.sd('DoShowSkypeMenu seed='+seed+'   skype_showseed='+skype_showseed);
/*  	if(seed!=skype_showseed)
    	return;
  	skype_showseed=0;
  	skype_curid=callto;
	skype_cur_name=name;
  	var menu=document.getElementById('skype_menu');

  	var my=pcy, mx=pcx;

    var menubox=document.getBoxObjectFor(menu);
    //var docelem = document.documentElement;
                                  //alert(menubox.height);
                                  //alert('doc h='+document.height + ' y='+my+' menu h='+menubox.height);
    var docH=document.height;
    if (docH < document.documentElement.clientHeight) docH=document.documentElement.clientHeight;
    if (docH < document.documentElement.scrollHeight) docH=document.documentElement.scrollHeight;
    if (docH < document.body.clientHeight) docH=document.body.clientHeight;
    if (docH < document.body.scrollHeight) docH=document.body.scrollHeight;
    if ((my + menubox.height) > docH)
		my=my - 16 - menubox.height;
    if (my < 0) my=0;
//    if (document.height != 0 && (my + menubox.height) > document.height && (my + menubox.height) > document.documentElement.scrollHeight)//docelem.clientHeight)
    	//my=document.height - menubox.height;

    var docW=document.width;
    if (docW < document.documentElement.clientWidth) docW=document.documentElement.clientWidth;
    if (docW < document.documentElement.scrollWidth) docW=document.documentElement.scrollWidth;
    if (docW < document.body.clientWidth) docW=document.body.clientWidth;
    if (docW < document.body.scrollWidth) docW=document.body.scrollWidth;
	if ((mx + menubox.width) > docW)
    	mx=document.width - menubox.width;
    if (mx < 0) mx=0;
//	if (document.width != 0 && (mx + menubox.width) > document.width && (mx + menubox.width) > document.documentElement.scrollWidth)//docelem.clientWidth)

  	menu.style.left=mx+'px';
  	menu.style.top=my+'px';

    skype_tool.doFixMenu(menu, isMobile, document);

    menu.style.visibility="visible";  */
}catch(e){ }
}

function SetBgColor(obj, color)
{
try{
  obj.lastChild.style.backgroundColor = color;
}catch(e){ }
}

//UTIL
function getBounds(element)
{
try{
	var left = element.left;
  	var top = element.top;
   	while(!(element.tagName.toLowerCase() == 'span' && element.getAttribute('id') == '__skype_highlight_id'))
    {
   		element=element.parentNode;
    }
	left = element.offsetLeft;
    top = element.offsetTop;
  	for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
  	{
   		left += parent.offsetLeft;
    	top += parent.offsetTop;
		if (parent.tagName.toLowerCase() == 'div')
        {
	        left -= parent.scrollLeft;
    		top -= parent.scrollTop;
        }
  	}


  	return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}catch(e){ }
}

function getDivScroll(element)
{
try{
	var left = 0;
  	var top = 0;
   	while(!(element.tagName.toLowerCase() == 'span' && element.getAttribute('id') == '__skype_highlight_id'))
    {
   		element=element.parentNode;
    }

  	for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
  	{
		if (parent.tagName.toLowerCase() == 'div')
        {
	        left -= parent.scrollLeft;
    		top -= parent.scrollTop;
        }
  	}


  	return {left: left, top: top};
}catch(e){ }
}